from rest_framework import status,viewsets
from sys_manager.models import DeptModel
from rest_framework.decorators import action
from rest_framework.response import Response
from ERP_system.apps.sys_manager.serializer_kit.dept_serializer import DeptSerializer

from ERP_system.utils.multiple_destory import MultipleDestoryMixin
from ERP_system.utils.pagination import GlobalPagination


class DeptView(viewsets.ModelViewSet,MultipleDestoryMixin):


    queryset = DeptModel.objects.all()
    serializer_class = DeptSerializer
    pagination_class = GlobalPagination

    '''
    实现增删改查功能，以及批量删除
    '''

    #自定义查询功能
    def get_queryset(self):
        '''
        前端需要传递pid请求参数
        1 如果没有传递pid 默认查询所有部门
        2 如果pid=0 查询所有的父部门
        3 如果传递的pid为具体的数字，则查询该部门下的所有子部门


        :return:  return 相应的查询数据
        '''

        p=self.request.query_params.get('pid',None)
        if p:
            inter_p=int(p)
            if inter_p==0:
                return DeptModel.objects.filter(parent__isnull=True).all()

            else:
                return DeptModel.objects.filter(parent__id=inter_p).all()
        else:
            return DeptModel.objects.all()